import time
from public.action import *
from public.business import *
from public.testData import *
from public.tools import *
testCase='DBshop003_货到付款流程'
kuaidi='1000000000'
# 1. 在首页搜索"小米", 点击搜索按钮
firefox=openBrowser(url) #调用自定义函数打开网页,url的值是在testData文件中定义的
#调用自定义函数进行登录
DBshopLogin(firefox,userName,password)
#在首页的搜索框输入小米
firefox.find_element_by_xpath('//input[@name="keywords"]').send_keys('小米')
#点击搜索按钮
firefox.find_element_by_xpath('//input[@type="submit"]').click()
# 2.选择小米mix3,加入到购物车,点击购物车按钮
#点击商品图片弹出新页面
firefox.find_element_by_xpath('//a[@href="/dbshop/goods/8/2"]').click()
#调用函数切换页面
switchWindow(firefox,2)
#在新页面中点击加入购物车按钮
firefox.find_element_by_id('add_cart_submit').click()
time.sleep(2)
#点击去购物车结算按钮
firefox.find_element_by_link_text('去购物车结算').click()
time.sleep(5)

# 3.点击"去结算"按钮
firefox.find_element_by_link_text('去结算').click()
time.sleep(5)

# 4.默认地址已经被选择,点击下一步按钮
firefox.find_element_by_xpath('//input[@value="下一步"]').click()
# 5.支付方式选择"余额支付", 点击确认订单
firefox.find_element_by_xpath('//input[@value="hdfk"]').click()
firefox.find_element_by_xpath('//input[@value="确认订单"]').click()
time.sleep(5)

#使用变量orderNO存储订单编号
orderNO=firefox.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
rootPath=get_pro_rootpath()
writeFile(rootPath+'\public\orderID.txt',orderNO) # 将订单编号写入到文件中
time.sleep(2)
# 6.登录后台管理系统,地址是"http://localhost/dbshop/admin",
firefox.get(urlAdmin)

# 1.打开后台网站
firefox =openB(adminurl)
adminlogin(firefox)
# 2.点击销售管理--订单管理
menu2(firefox,"销售管理","订单管理")
# 3.搜索订单号 --编辑查看--发货操作
firefox.find_element_by_xpath("//input[@class='span11']").send_keys(orderID)
firefox.find_element_by_xpath("(//button[@class='btn btn-small btn-primary'])[1]").click()
firefox.find_element_by_link_text("编辑查看").click()
# 4.发货操作--填写表单--点击发货
firefox.find_element_by_link_text("发货操作").click()
firefox.find_element_by_id("express_number").send_keys(danhao)
firefox.find_element_by_id("state_info").send_keys(danhaoshuoming)
firefox.find_element_by_xpath("//button").click()
# 5.修改为已付款--提交保存
firefox.find_element_by_link_text("付款操作").click()
firefox.find_element_by_xpath('//select[@id="pay_state"]/option[@value=20]').click()                        #下拉框选择
firefox.find_element_by_id("state_info").send_keys(ttt)
firefox.find_element_by_xpath("//button[@class='btn btn-small btn-primary']").click()
print("确认款项")


print("确认发货")
firefox.quit()


# 6.点击确认收货
firefox.find_element_by_xpath('//button[text()="确认收货"]').click()
firefox.find_element_by_xpath('//button[@type="submit"]').click()
firefox.switch_to.alert.accept()
# 7.进入dbshop前台查看我的订单"交易完成"中,检查上面的订单状态
firefox.find_element_by_partial_link_text('交易完成').click()
firefox.find_element_by_name('search_order_sn').send_keys(orderNO)
firefox.find_element_by_xpath('//button').click()

#断言
try:
    firefox.find_element_by_link_text(orderNO).is_displayed()  #is_displayed()函数判断元素是否显示
    writeLog("%s 测试通过"%testCase)
except:
    writeLog("%s 测试失败" % testCase)
    getPhoto(firefox)
firefox.quit()